<?php

namespace Drinkiit\BlogBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Drinkiit\BlogBundle\Form\AdminProduitType;
use Drinkiit\BlogBundle\Form\AdminProduitListeType;
use Drinkiit\BlogBundle\Handler\AdminProduitHandler;
use Drinkiit\BlogBundle\Handler\AdminProduitListeHandler;
use Drinkiit\BlogBundle\Entity\Produit;

class AdminProduitController extends Controller
{
	public function em($objet) {
		return $this->getDoctrine()->getEntityManager()->getRepository($objet) ;
	}
	
	public function indexAction()
	{
		$produit = new Produit();
		$form = $this->createForm(new AdminProduitType, $produit);
		
        $formHandler = new AdminProduitHandler($form, $this->get('request'), $this, $this->getDoctrine()->getEntityManager());
		
        if( $formHandler->process() )
        {
			$this->get('logger')->info("[INFO] Formulaire bien validé, d'ou la redirection [admin_management_produit]") ;
            return $this->redirect( $this->generateUrl('admin_management_produit') );
        }
		
		$liste_produit = $this->em('DrinkiitBlogBundle:Produit')->findAll() ;
		$forms = Array() ; // la liste des formulaires pour chaque produit qui existe
		foreach ( $liste_produit as $key => $produit) {
			
			$form1 = $this->createForm(new AdminProduitListeType, $produit); // on créé le formulaire de chaque produit
			
			$formHandler1 = new AdminProduitListeHandler($form1, $this->get('request'), $this, $this->getDoctrine()->getEntityManager()); // avec sont handler
			if( $formHandler1->process() )
			{
				$this->get('logger')->info("[INFO] Formulaire bien validé, d'ou la redirection [admin_management_produit]") ;
				return $this->redirect( $this->generateUrl('admin_management_produit') );
			}
			$forms[$produit->getId()] = $form1->createView(); // puis on créé la vue du formulaire
		}
		
		$this->get('logger')->info("[INFO] Nombre de produits : ".count($liste_produit)) ;
		return $this->render('DrinkiitBlogBundle:Admin:Produit.html.twig', array(
			'form' => $form->createView(),
			'form1' => $forms,
			'titre' => 'Ajouter un produit',
			'liste' => $liste_produit, 
		));
	}
}
